package de.pyranja.money;

import java.math.BigDecimal;

import de.pyranja.money.core.BaseMoney;

/**
 * Defines calculations on BaseMoney instances. Calculations should fail 
 * immediately if currencies of input do not match.
 * 
 * @author Chris Borckholder
 */
public interface MoneyCalculator {

	/**
	 * Add up two amounts of money.
	 */
	BaseMoney add(BaseMoney a, BaseMoney b);

	/**
	 * Subtracts amount b from amount a
	 */
	BaseMoney subtract(BaseMoney a, BaseMoney b);

	/**
	 * Multiplies amount of money with a BigDecimal
	 */
	BaseMoney multiply(BaseMoney a, BigDecimal b);
}
